home *** CD-ROM | disk | FTP | other *** search
- HOW TO QUICKLY MIGRATE TO ANOTHER DOS-EXTENDER:
-
- I devenloped the 386Power DOS-EXTENDER for myself
- so i suited it to my needs, and updated and improved it gradually
- (nearly just for fun).
- The current release is improved if compared to the previous ones
- but still has its limitation.
- My main interests are in graphics/audio and game programming
- not into coding dos-extenders.
- Because of this i made the current "dos-extender interface"
- designed to be quickly portable.
-
- The XGE library ( that big pack of useful routines for graphics
- and "gaming") can be quickly migrated to ANOTHER dos-extender, let's see how:
- ALL the library code assumes is that there are TWO code segments
- a 16bit segment called code16 (used directly just by the 386timer
- and 386keyb code)
- and a big 32bit segment called code32.
- STARTING from code32 offset zero there is a "table" of pointers and variables
- that are the "real" dos-extender interface.
-
- If you wan to use another dos-extender, just code an "interface" module
- that sets up a big 32bit segment called code32 and has the same
- "segment head" of the 386Power code32
- (the variables and pointers that HAVE to be into the beginning of code32
- are "listed" into the head32.inc header)
- (head32.inc contains the "interface definitions" that let EXTERNAL DRIVERS
- to be "linked in" into a 386Powered :) program).
-
- Once you do this and add to the "interface" module the routines pointed
- by the pointers declared into the "header", you are ok and ready to run.
-
- This migration is made easier if you can use a dos-extender with a standard
- DPMI interface ("a DPMI server")
- If you can do this, you just have "turn on" the DPMI interface
- and then jump to the Boot16 label into 386power.asm
- [the 386Power starting point]. (
- Remember to change the "startup directive" located at the end of 386power.asm
- from Boot16 to "what is it".
- For example:
-
- Currently you will see at the end of 386Power.asm the following:
- ....
- ; Boot16 is program starting point
- end Boot16
-
- To make the "DPMI loader" start first, simply do the following:
-
- dpmi_server_wakeup:
- call Initialize_external_DPMI_server
- jmp Boot16
- .....
- .....
- ; dpmi_server_wakeup is "new" starting point
- end dpmi_server_wake
-
- TRAN'S NEWER DOS-EXTENDERS (the newest i know is pmode307.zip and you can
- find it in the internet ftp site called x2ftp.oulu.fi)
- ARE DPMI SERVERS!!!
- So if you prefer Tran's dos-extenders
- (after all, Tran is the dos-extender expert) you can migrate to it
- by including its code into 386power.asm and adding three lines!!!!
- [ Uhm! If i remember well, the irq reflection under VCPI/XSM/"raw 386"
- with Tran's dos-extender DOES NOT automatically reflects IRQs
- from real-mode to protected mode, this will be up to you
- ( using the "callback" functions) ]
-
-